<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Spring Social Reference Manual</title><link rel="stylesheet" href="css/manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Spring Social Reference Manual"><link rel="next" href="overview.html" title="1.&nbsp;Spring Social Overview"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Spring Social Reference Manual</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="overview.html">Next</a></td></tr></table><hr></div><div class="book" title="Spring Social Reference Manual"><div class="titlepage"><div><div><h1 class="title"><a name="spring-social-reference"></a>Spring Social Reference Manual</h1></div><div><div class="authorgroup">
      <div class="author"><h3 class="author"><span class="firstname">Craig</span> <span class="surname">Walls</span></h3></div>
      <div class="author"><h3 class="author"><span class="firstname">Keith</span> <span class="surname">Donald</span></h3></div>
    </div></div><div><p class="releaseinfo">1.0.0.RC3</p></div><div><div class="legalnotice" title="Legal Notice"><a name="d4e19"></a><p>&copy; SpringSource Inc., 2011</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="overview.html">1. Spring Social Overview</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-introduction">1.1. Introduction</a></span></dt><dt><span class="section"><a href="overview.html#overview-social">1.2. Socializing applications</a></span></dt><dt><span class="section"><a href="overview.html#overview-howtoget">1.3. How to get</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-client-modules">1.3.1. Client modules</a></span></dt></dl></dd><dt><span class="section"><a href="overview.html#overview-dependencies">1.4. Dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="overview.html#overview-dependencies-java">1.4.1. Java</a></span></dt><dt><span class="section"><a href="overview.html#overview-dependencies-javaee">1.4.2. Java Servlet API</a></span></dt><dt><span class="section"><a href="overview.html#overview-dependencies-spring">1.4.3. Spring Framework</a></span></dt><dt><span class="section"><a href="overview.html#overview-dependencies-springsecurity">1.4.4. Spring Security Crypto</a></span></dt><dt><span class="section"><a href="overview.html#overview-dependencies-httpcomponents">1.4.5. Apache HttpComponents</a></span></dt><dt><span class="section"><a href="overview.html#overview-dependencies-jackson">1.4.6. Jackson JSON Processor</a></span></dt></dl></dd><dt><span class="section"><a href="overview.html#overview-samples">1.5. Sample Code</a></span></dt></dl></dd><dt><span class="chapter"><a href="serviceprovider.html">2. Service Provider 'Connect' Framework</a></span></dt><dd><dl><dt><span class="section"><a href="serviceprovider.html#service-providers-base-api">2.1. Core API</a></span></dt><dt><span class="section"><a href="serviceprovider.html#service-providers-establishing-connections">2.2. Establishing connections</a></span></dt><dd><dl><dt><span class="section"><a href="serviceprovider.html#service-providers-oauth2">2.2.1. OAuth2 service providers</a></span></dt><dt><span class="section"><a href="serviceprovider.html#service-providers-oauth1">2.2.2. OAuth1 service providers</a></span></dt><dt><span class="section"><a href="serviceprovider.html#service-providers-establishing-connections-connection-factory-registry">2.2.3. Registering ConnectionFactory instances</a></span></dt></dl></dd><dt><span class="section"><a href="serviceprovider.html#service-providers-persisting-connections">2.3. Persisting connections</a></span></dt><dd><dl><dt><span class="section"><a href="serviceprovider.html#service-providers-persisting-connections-jdbc">2.3.1. JDBC-based persistence</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="implementing.html">3. Adding Support for a New Service Provider</a></span></dt><dd><dl><dt><span class="section"><a href="implementing.html#service-providers-implementing">3.1. Process overview</a></span></dt><dt><span class="section"><a href="implementing.html#service-providers-implementing-project">3.2. Creating a source project for the provider client code</a></span></dt><dd><dl><dt><span class="section"><a href="implementing.html#service-providers-implementing-project-structure">3.2.1. Code structure guidelines</a></span></dt></dl></dd><dt><span class="section"><a href="implementing.html#service-providers-implementing-api">3.3. Developing a Java binding to the provider's API</a></span></dt><dd><dl><dt><span class="section"><a href="implementing.html#service-provider-implementing-api-new-designing">3.3.1. Designing a new Java API binding</a></span></dt><dt><span class="section"><a href="implementing.html#service-provider-implementing-api-new-implementing">3.3.2. Implementing a new Java API binding</a></span></dt><dt><span class="section"><a href="implementing.html#service-provider-implementing-api-new-testing">3.3.3. Testing a new Java API binding</a></span></dt><dt><span class="section"><a href="implementing.html#service-provider-implementing-api-existing-integrating">3.3.4. Integrating an existing Java API binding</a></span></dt></dl></dd><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceprovider">3.4. Creating a ServiceProvider model</a></span></dt><dd><dl><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceprovider-oauth2">3.4.1. OAuth2</a></span></dt><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceprovider-oauth1">3.4.2. OAuth1</a></span></dt></dl></dd><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceapiadapter">3.5. Creating an ApiAdapter</a></span></dt><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceproviderconnectionfactory">3.6. Creating a ConnectionFactory</a></span></dt><dd><dl><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceproviderconnectionfactory-oauth2">3.6.1. OAuth2</a></span></dt><dt><span class="section"><a href="implementing.html#service-providers-implementing-serviceproviderconnectionfactory-oauth1">3.6.2. OAuth1</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="connecting.html">4. Connecting to Service Providers</a></span></dt><dd><dl><dt><span class="section"><a href="connecting.html#section_connecting_introduction">4.1. Introduction</a></span></dt><dt><span class="section"><a href="connecting.html#section_connecting_service_providers">4.2. Configuring ConnectController</a></span></dt><dd><dl><dt><span class="section"><a href="connecting.html#d4e584">4.2.1. Configuring connection support in XML</a></span></dt></dl></dd><dt><span class="section"><a href="connecting.html#connect-controller">4.3. Creating connections with <code class="classname">ConnectController</code></a></span></dt><dd><dl><dt><span class="section"><a href="connecting.html#connect-controller-flow-1">4.3.1. Displaying a connection page</a></span></dt><dt><span class="section"><a href="connecting.html#connect-controller-flow-2">4.3.2. Initiating the connection flow</a></span></dt><dd><dl><dt><span class="section"><a href="connecting.html#connect-controller-flow-3-scope">Authorization scope</a></span></dt></dl></dd><dt><span class="section"><a href="connecting.html#connect-controller-flow-3">4.3.3. Responding to the authorization callback</a></span></dt><dt><span class="section"><a href="connecting.html#connect-controller-flow-disconnect">4.3.4. Disconnecting</a></span></dt></dl></dd><dt><span class="section"><a href="connecting.html#connect-interceptors">4.4. Connection interceptors</a></span></dt></dl></dd><dt><span class="chapter"><a href="signin.html">5. Signing in with Service Provider Accounts</a></span></dt><dd><dl><dt><span class="section"><a href="signin.html#signin_introduction">5.1. Introduction</a></span></dt><dt><span class="section"><a href="signin.html#signin_using">5.2. Enabling provider sign in</a></span></dt><dd><dl><dt><span class="section"><a href="signin.html#d4e837">5.2.1. ProviderSignInController's dependencies</a></span></dt><dt><span class="section"><a href="signin.html#d4e874">5.2.2. Adding a provider sign in button</a></span></dt></dl></dd><dt><span class="section"><a href="signin.html#signin_signup">5.3. Signing up after a failed sign in</a></span></dt><dd><dl><dt><span class="section"><a href="signin.html#signin_signup_explicit">5.3.1. Signing up with a sign up form</a></span></dt><dt><span class="section"><a href="signin.html#signin_signup_implicit">5.3.2. Implicit sign up</a></span></dt></dl></dd></dl></dd></dl></div>
  

  
  
    
    
    
    
    
</div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="overview.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;1.&nbsp;Spring Social Overview</td></tr></table></div></body></html>